#include <iostream>
#include <queue>
#include <cstring>
#define INF 1<<20
using namespace std;
//图类,使用邻接矩阵实现，这里只考虑了简单无向加权图
class Graph
{
    private:
        int V;//图包含顶点数
	    int ** matrix;  //保存邻接矩阵
	    int ** shortest_dis;    //保存最短距离
	public:
        //根据点数构造图
		Graph(int V);
        //析构函数
        ~Graph();
        //根据起点和终点构造一条边
        void addEdge(int start,int end,int weight=1);
        //打印图信息
        void printMap();
        //floyd_warshall算法
        void floyd_warshall();
        //打印最短各节点对路径
        void print_shortest_path();
};
